Systems and Methods to Optimize Imaging Settings for a Machine Vision Job

ABSTRACT

Methods and systems for optimizing one or more imaging settings for a machine vision job are disclosed herein. An example method includes detecting, by one or more processors, an initiation trigger that initiates the machine vision job. The example method further includes, responsive to detecting the initiation trigger, capturing, by an imaging device, a first image of a target object in accordance with a first configuration of the one or more imaging settings. The example method further includes, responsive to capturing the first image of the target object, automatically adjusting, by the one or more processors, the one or more imaging settings to a second configuration that includes at least one different imaging setting from the first configuration; and capturing, by the imaging device, a second image of the target object in accordance with the second configuration of the one or more imaging settings.

BACKGROUND

Ever since the introduction of machine vision systems to industrialsettings, developers have been attempting to reduce their correspondingcost and space requirements. These systems are capable of executingmachine vision jobs to provide high fidelity image analysis at a cost ofcapturing images under finely tuned imaging settings (e.g., exposurelength). However, these machine vision jobs also typically requiremachine vision systems to cycle through multiple sets of imagingsettings to capture multiple images with, for example, different depthsof field. As a result, multiple cameras and extra external lights areneeded in many conventional circumstances to ensure that the machinevision system is capable of capturing a suitable image for each set ofimaging settings to provide the expected image analysis.

Unfortunately, each additional piece of equipment can be very costly,may further complicate installations, and may delay the machine visionjob. For example, an average external light can cost anywhere fromseveral hundred to several thousands of dollars, and an average cameraand reader combination can cost anywhere from thousands to tens ofthousands of dollars. Each additional component will also need to beintegrated to the machine vision system, which can readily cost twicetheir purchase price. Moreover, each additional component bought andinstalled in a machine vision system may occupy valuable physical spacethat can create unnecessary or dangerous congestion in an industrialsetting. Further, as a conventional system executes a job, the imagingsettings for the conventional system typically require adjustments tothe additional components, resulting in significant delays to theconventional system completing the job.

Thus, there is a need for systems and methods to optimize image settingsfor a machine vision job that allow for fast and efficient real-timeimage setting adjustments for machine vision system during a machinevision job.

SUMMARY

In an embodiment, the present invention is a method for optimizing oneor more imaging settings for a machine vision job. The method includesdetecting, by one or more processors, an initiation trigger thatinitiates the machine vision job. The method further includes,responsive to detecting the initiation trigger, capturing, by an imagingdevice, a first image of a target object in accordance with a firstconfiguration of the one or more imaging settings. The method furtherincludes, responsive to capturing the first image of the target object,automatically adjusting, by the one or more processors, the one or moreimaging settings to a second configuration that includes at least onedifferent imaging setting from the first configuration. The methodfurther includes capturing, by the imaging device, a second image of thetarget object in accordance with the second configuration of the one ormore imaging settings.

In a variation of this embodiment, the one or more imaging settingsinclude one or more of (i) an aperture size, (ii) an exposure length,(iii) an ISO value, (iv) a focus value, (v) a gain value, or (vi) anillumination control.

In another variation of this embodiment, the initiation triggercomprises the target object entering a field of view (FOV) of theimaging device.

In yet another variation of this embodiment, the imaging device includesa single camera.

In still another variation of this embodiment, the machine vision jobincludes one or more machine vision tools configured to perform one ormore machine vision techniques on the first image and the second image.In a further variation of this embodiment, the method further comprises:performing, by the one or more processors, the one or more machinevision techniques on the first image and the second image in accordancewith the one or more machine vision tools included in the machine visionjob; and generating, by the one or more processors, a result signalrepresenting a pass indication or a fail indication for the machinevision job. In another further variation of this embodiment, the one ormore machine vision tools include at least one of (i) a barcode scanningtool, (ii) a pattern matching tool, (iii) an edge detection tool, (iv) asemantic segmentation tool, (v) an object detection tool, or (vi) anobject tracking tool.

In yet another variation of this embodiment, the machine vision jobincludes a predetermined number of configurations of the one or moreimaging settings. In a further variation of this embodiment, the methodfurther comprises: (a) designating the second image as a current image;(b) responsive to capturing the current image of the target object,automatically adjusting the one or more imaging settings to a subsequentconfiguration that includes at least one different imaging setting fromeach prior configuration of the one or more imaging settings; (c)capturing, by the imaging device, a subsequent image of the targetobject in accordance with the subsequent configuration of the one ormore imaging settings; (d) designating the subsequent image as thecurrent image; and (e) iteratively performing steps (b)-(e) until eachconfiguration of the predetermined number of configurations of the oneor more imaging settings has been utilized to capture at least one imageof the target object.

In another embodiment, the present invention is a computer system foroptimizing one or more imaging settings for a machine vision job. Thesystem may comprise an imaging device configured to capture a firstimage of a target object in accordance with a first configuration of theone or more imaging settings, and capture a second image of the targetobject in accordance with a second configuration of the one or moreimaging settings. The system may further comprise one or moreprocessors; and a non-transitory computer-readable memory coupled to theimaging device and the one or more processors. The memory may storeinstructions thereon that, when executed by the one or more processors,cause the one or more processors to: detect an initiation trigger thatinitiates the machine vision job, and responsive to capturing the firstimage of the target object, automatically adjusting the one or moreimaging settings to the second configuration that includes at least onedifferent imaging setting from the first configuration.

In a variation of this embodiment, the one or more imaging settingsinclude one or more of (i) an aperture size, (ii) an exposure length,(iii) an ISO value, (iv) a focus value, (v) a gain value, or (vi) anillumination control.

In another variation of this embodiment, the initiation triggercomprises the target object entering a field of view (FOV) of theimaging device.

In yet another variation of this embodiment, the machine vision jobincludes one or more machine vision tools configured to perform one ormore machine vision techniques on the first image and the second image.Further in this variation, the instructions, when executed by the one ormore processors, further cause the one or more processors to: performthe one or more machine vision techniques on the first image and thesecond image in accordance with the one or more machine vision toolsincluded in the machine vision job; and generate a result signalrepresenting a pass indication or a fail indication for the machinevision job.

In still another variation of this embodiment, the machine vision jobincludes a predetermined number of configurations of the one or moreimaging settings. Further in this variation, the instructions, whenexecuted by the one or more processors, further cause the one or moreprocessors to: (a) designate the second image as a current image; (b)responsive to capturing the current image of the target object,automatically adjust the one or more imaging settings to a subsequentconfiguration that includes at least one different imaging setting fromeach prior configuration of the one or more imaging settings; (c)capture, by the imaging device, a subsequent image of the target objectin accordance with the subsequent configuration of the one or moreimaging settings; (d) designate the subsequent image as the currentimage; and (e) iteratively perform steps (b)-(e) until eachconfiguration of the predetermined number of configurations of the oneor more imaging settings has been utilized to capture at least one imageof the target object.

In yet another embodiment, the present invention is a tangiblemachine-readable medium comprising instructions for optimizing one ormore imaging settings for a machine vision job. When executed, theinstructions cause a machine to at least: detect an initiation triggerthat initiates the machine vision job; responsive to detecting theinitiation trigger, capture, by an imaging device, a first image of atarget object in accordance with a first configuration of the one ormore imaging settings; responsive to capturing the first image of thetarget object, automatically adjust the one or more imaging settings toa second configuration that includes at least one different imagingsetting from the first configuration; and capture, by the imagingdevice, a second image of the target object in accordance with thesecond configuration of the one or more imaging settings.

In a variation of this embodiment, the machine vision job includes oneor more machine vision tools configured to perform one or more machinevision techniques on the first image and the second image. Further inthis variation, the instructions, when executed, further cause themachine to at least: perform the one or more machine vision techniqueson the first image and the second image in accordance with the one ormore machine vision tools included in the machine vision job; andgenerate a result signal representing a pass indication or a failindication for the machine vision job.

In another variation of this embodiment, the machine vision job includesa predetermined number of configurations of the one or more imagingsettings, and wherein the instructions, when executed, further cause themachine to at least: (a) designate the second image as a current image;(b) responsive to capturing the current image of the target object,automatically adjust the one or more imaging settings to a subsequentconfiguration that includes at least one different imaging setting fromeach prior configuration of the one or more imaging settings; (c)capture, by the imaging device, a subsequent image of the target objectin accordance with the subsequent configuration of the one or moreimaging settings; (d) designate the subsequent image as the currentimage; and (e) iteratively perform steps (b)-(e) until eachconfiguration of the predetermined number of configurations of the oneor more imaging settings has been utilized to capture at least one imageof the target object.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1 is an example system for optimizing one or more imaging settingsfor a machine vision job, in accordance with embodiments describedherein.

FIG. 2 is a perspective view of the imaging device of FIG. 1, inaccordance with embodiments described herein.

FIG. 3 depicts an example application interface utilized to optimize oneor more imaging settings for a machine vision job, in accordance withembodiments described herein.

FIG. 4A depicts an additional application interface utilized to optimizeone or more imaging settings for a machine vision job, in accordancewith embodiments described herein.

FIG. 4B depicts yet another application interface utilized to optimizeone or more imaging settings for a machine vision job, in accordancewith embodiments described herein.

FIG. 5 is a flowchart representative of a method for optimizing one ormore imaging settings for a machine vision job, in accordance withembodiments described herein.

FIG. 6 depicts the execution of an example machine vision job thatincludes multiple imaging settings, where the example machine vision jobimplements example methods and/or operations described herein.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions of some of the elements inthe figures may be exaggerated relative to other elements to help toimprove understanding of embodiments of the present invention.

The apparatus and method components have been represented whereappropriate by conventional symbols in the drawings, showing only thosespecific details that are pertinent to understanding the embodiments ofthe present invention so as not to obscure the disclosure with detailsthat will be readily apparent to those of ordinary skill in the arthaving the benefit of the description herein.

DETAILED DESCRIPTION OF THE INVENTION

Machine vision system owners/operators have conventionally been plaguedwith being unable to achieve high fidelity image analysis using multipleimaging settings without purchasing and installing additional systemcomponents. Cameras, readers, external lights, and other components canbe very costly to purchase and install, and generally reduce systemefficiency by requiring users/operators to individually change componentsettings between image captures to ensure each image is suitable for aparticular machine vision technique (e.g., barcode scanning, edgedetection, etc.). Thus, it is an objective of the present disclosure toeliminate these and other problems with conventional machine visionsystems by enabling the creation and execution of machine vision jobsincluding a bank of imaging settings that are successively applied by amachine vision camera. As described herein, the embodiments of thepresent disclosure may reduce the need for costly additional components,speed up the installation and integration time for a machine visionsystem, and ensure that the system maximizes image capture andprocessing efficiency.

FIG. 1 illustrates an example smart imaging system 100 configured toanalyze pixel data of an image of a target object to optimize one ormore imaging settings for a machine vision job, in accordance withvarious embodiments disclosed herein. In the example embodiment of FIG.1, the smart imaging system 100 includes a user computing device 102 andan imaging device 104 communicatively coupled to the user computingdevice 102 via a network 106. Generally speaking, the user computingdevice 102 and the imaging device 104 may be capable of executinginstructions to, for example, implement operations of the examplemethods described herein, as may be represented by the flowcharts of thedrawings that accompany this description. The user computing device 102is generally configured to enable a user/operator to create a machinevision job for execution on the imaging device 104. When created, theuser/operator may then transmit/upload the machine vision job to theimaging device 104 via the network 106, where the machine vision job isthen interpreted and executed. The user computing device 102 maycomprise one or more operator workstations, and may include one or moreprocessors 108, one or more memories 110, a networking interface 112, aninput/output (I/O) interface 114, and a smart imaging application 116.

The imaging device 104 is connected to the user computing device 102 viaa network 106, and is configured to interpret and execute machine visionjobs received from the user computing device 102. Generally, the imagingdevice 104 may obtain a job file containing one or more job scripts fromthe user computing device 102 across the network 106 that may define themachine vision job and may configure the imaging device 104 to captureand/or analyze images in accordance with the machine vision job. Forexample, the imaging device 104 may include flash memory used fordetermining, storing, or otherwise processing imaging data/datasetsand/or post-imaging data. The imaging device 104 may then receive,recognize, and/or otherwise interpret a trigger that causes the imagingdevice 104 to capture an image of the target object in accordance withthe configuration established via the one or more job scripts. Oncecaptured and/or analyzed, the imaging device 104 may transmit the imagesand any associated data across the network 106 to the user computingdevice 102 for further analysis and/or storage. In various embodiments,the imaging device 104 may be a “smart” camera and/or may otherwise beconfigured to automatically perform sufficient functionality of theimaging device 104 in order to obtain, interpret, and execute jobscripts that define machine vision jobs, such as any one or more jobscripts contained in one or more job files as obtained, for example,from the user computing device 102.

Broadly, the job file may be a JSON representation/data format of theone or more job scripts transferrable from the user computing device 102to the imaging device 104. The job file may further be loadable/readableby a C++ runtime engine, or other suitable runtime engine, executing onthe imaging device 104. Moreover, the imaging device 104 may run aserver (not shown) configured to listen for and receive job files acrossthe network 106 from the user computing device 102. Additionally oralternatively, the server configured to listen for and receive job filesmay be implemented as one or more cloud-based servers, such as acloud-based computing platform. For example, the server may be any oneor more cloud-based platform(s) such as MICROSOFT AZURE, AMAZON AWS, orthe like.

In any event, the imaging device 104 may include one or more processors118, one or more memories 120, a networking interface 122, an I/Ointerface 124, and an imaging assembly 126. The imaging assembly 126 mayinclude a digital camera and/or digital video camera for capturing ortaking digital images and/or frames. Each digital image may comprisepixel data that may be analyzed by one or more tools each configured toperform an image analysis task, as described herein. The digital cameraand/or digital video camera of, e.g., the imaging assembly 126 may beconfigured to take, capture, or otherwise generate digital images and,at least in some embodiments, may store such images in a memory (e.g.,one or more memories 110, 120) of a respective device (e.g., usercomputing device 102, imaging device 104).

For example, the imaging assembly 126 may include a photo-realisticcamera (not shown) for capturing, sensing, or scanning 2D image data.The photo-realistic camera may be an RGB (red, green, blue) based camerafor capturing 2D images having RGB-based pixel data. In variousembodiments, the imaging assembly may additionally include athree-dimensional (3D) camera (not shown) for capturing, sensing, orscanning 3D image data. The 3D camera may include an Infra-Red (IR)projector and a related IR camera for capturing, sensing, or scanning 3Dimage data/datasets. In some embodiments, the photo-realistic camera ofthe imaging assembly 126 may capture 2D images, and related 2D imagedata, at the same or similar point in time as the 3D camera of theimaging assembly 126 such that the imaging device 104 can have both setsof 3D image data and 2D image data available for a particular surface,object, area, or scene at the same or similar instance in time. Invarious embodiments, the imaging assembly 126 may include the 3D cameraand the photo-realistic camera as a single imaging apparatus configuredto capture 3D depth image data simultaneously with 2D image data.Consequently, the captured 2D images and the corresponding 2D image datamay be depth-aligned with the 3D images and 3D image data.

In embodiments, imaging assembly 126 may be configured to capture imagesof surfaces or areas of a predefined search space or target objectswithin the predefined search space. For example, each tool included in ajob script may additionally include a region of interest (ROI)corresponding to a specific region or a target object imaged by theimaging assembly 126. The composite area defined by the ROIs for alltools included in a particular job script may thereby define thepredefined search space which the imaging assembly 126 may capture inorder to facilitate the execution of the job script. However, thepredefined search space may be user-specified to include a field of view(FOV) featuring more or less than the composite area defined by the ROIsof all tools included in the particular job script. It should be notedthat the imaging assembly 126 may capture 2D and/or 3D imagedata/datasets of a variety of areas, such that additional areas inaddition to the predefined search spaces are contemplated herein.Moreover, in various embodiments, the imaging assembly 126 may beconfigured to capture other sets of image data in addition to the 2D/3Dimage data, such as grayscale image data or amplitude image data, eachof which may be depth-aligned with the 2D/3D image data.

The imaging device 104 may also process the 2D image data/datasetsand/or 3D image datasets for use by other devices (e.g., the usercomputing device 102, an external server). For example, the one or moreprocessors 118 may process the image data or datasets captured, scanned,or sensed by the imaging assembly 126. The processing of the image datamay generate post-imaging data that may include metadata, simplifieddata, normalized data, result data, status data, or alert data asdetermined from the original scanned or sensed image data. The imagedata and/or the post-imaging data may be sent to the user computingdevice 102 executing the smart imaging application 116 for viewing,manipulation, and/or otherwise interaction. In other embodiments, theimage data and/or the post-imaging data may be sent to a server forstorage or for further manipulation. As described herein, the usercomputing device 102, imaging device 104, and/or external server orother centralized processing unit and/or storage may store such data,and may also send the image data and/or the post-imaging data to anotherapplication implemented on a user device, such as a mobile device, atablet, a handheld device, or a desktop device.

Each of the one or more memories 110, 120 may include one or more formsof volatile and/or non-volatile, fixed and/or removable memory, such asread-only memory (ROM), electronic programmable read-only memory(EPROM), random access memory (RAM), erasable electronic programmableread-only memory (EEPROM), and/or other hard drives, flash memory,MicroSD cards, and others. In general, a computer program or computerbased product, application, or code (e.g., smart imaging application116, or other computing instructions described herein) may be stored ona computer usable storage medium, or tangible, non-transitorycomputer-readable medium (e.g., standard random access memory (RAM), anoptical disc, a universal serial bus (USB) drive, or the like) havingsuch computer-readable program code or computer instructions embodiedtherein, wherein the computer-readable program code or computerinstructions may be installed on or otherwise adapted to be executed bythe one or more processors 108, 118 (e.g., working in connection withthe respective operating system in the one or more memories 110, 120) tofacilitate, implement, or perform the machine readable instructions,methods, processes, elements or limitations, as illustrated, depicted,or described for the various flowcharts, illustrations, diagrams,figures, and/or other disclosure herein. In this regard, the programcode may be implemented in any desired program language, and may beimplemented as machine code, assembly code, byte code, interpretablesource code or the like (e.g., via Golang, Python, C, C++, C#,Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML,etc.).

The one or more memories 110, 120 may store an operating system (OS)(e.g., Microsoft Windows, Linux, Unix, etc.) capable of facilitating thefunctionalities, apps, methods, or other software as discussed herein.The one or more memories 110 may also store the smart imagingapplication 116, which may be configured to enable machine vision jobconstruction, as described further herein. Additionally, oralternatively, the smart imaging application 116 may also be stored inthe one or more memories 120 of the imaging device 104, and/or in anexternal database (not shown), which is accessible or otherwisecommunicatively coupled to the user computing device 102 via the network106. The one or more memories 110, 120 may also store machine readableinstructions, including any of one or more application(s), one or moresoftware component(s), and/or one or more application programminginterfaces (APIs), which may be implemented to facilitate or perform thefeatures, functions, or other disclosure described herein, such as anymethods, processes, elements or limitations, as illustrated, depicted,or described for the various flowcharts, illustrations, diagrams,figures, and/or other disclosure herein. For example, at least some ofthe applications, software components, or APIs may be, include,otherwise be part of, a machine vision based imaging application, suchas the smart imaging application 116, where each may be configured tofacilitate their various functionalities discussed herein. It should beappreciated that one or more other applications may be envisioned andthat are executed by the one or more processors 108, 118.

The one or more processors 108, 118 may be connected to the one or morememories 110, 120 via a computer bus responsible for transmittingelectronic data, data packets, or otherwise electronic signals to andfrom the one or more processors 108, 118 and one or more memories 110,120 in order to implement or perform the machine readable instructions,methods, processes, elements or limitations, as illustrated, depicted,or described for the various flowcharts, illustrations, diagrams,figures, and/or other disclosure herein.

The one or more processors 108, 118 may interface with the one or morememories 110, 120 via the computer bus to execute the operating system(OS). The one or more processors 108, 118 may also interface with theone or more memories 110, 120 via the computer bus to create, read,update, delete, or otherwise access or interact with the data stored inthe one or more memories 110, 120 and/or external databases (e.g., arelational database, such as Oracle, DB2, MySQL, or a NoSQL baseddatabase, such as MongoDB). The data stored in the one or more memories110, 120 and/or an external database may include all or part of any ofthe data or information described herein, including, for example,machine vision job images (e.g., images captured by the imaging device104 in response to execution of a job script) and/or other suitableinformation.

The networking interfaces 112, 122 may be configured to communicate(e.g., send and receive) data via one or more external/network port(s)to one or more networks or local terminals, such as network 106,described herein. In some embodiments, networking interfaces 112, 122may include a client-server platform technology such as ASP.NET, JavaJ2EE, Ruby on Rails, Node.js, a web service or online API, responsivefor receiving and responding to electronic requests. The networkinginterfaces 112, 122 may implement the client-server platform technologythat may interact, via the computer bus, with the one or more memories110, 120 (including the applications(s), component(s), API(s), data,etc. stored therein) to implement or perform the machine readableinstructions, methods, processes, elements or limitations, asillustrated, depicted, or described for the various flowcharts,illustrations, diagrams, figures, and/or other disclosure herein.

According to some embodiments, the networking interfaces 112, 122 mayinclude, or interact with, one or more transceivers (e.g., WWAN, WLAN,and/or WPAN transceivers) functioning in accordance with IEEE standards,3GPP standards, or other standards, and that may be used in receipt andtransmission of data via external/network ports connected to network106. In some embodiments, network 106 may comprise a private network orlocal area network (LAN). Additionally or alternatively, network 106 maycomprise a public network such as the Internet. In some embodiments, thenetwork 106 may comprise routers, wireless switches, or other suchwireless connection points communicating to the user computing device102 (via the networking interface 112) and the imaging device 104 (vianetworking interface 122) via wireless communications based on any oneor more of various wireless standards, including by non-limitingexample, IEEE 802.11a/b/c/g (WIFI), the BLUETOOTH standard, or the like.

The I/O interfaces 114, 124 may include or implement operator interfacesconfigured to present information to an administrator or operator and/orreceive inputs from the administrator or operator. An operator interfacemay provide a display screen (e.g., via the user computing device 102and/or imaging device 104) which a user/operator may use to visualizeany images, graphics, text, data, features, pixels, and/or othersuitable visualizations or information. For example, the user computingdevice 102 and/or imaging device 104 may comprise, implement, haveaccess to, render, or otherwise expose, at least in part, a graphicaluser interface (GUI) for displaying images, graphics, text, data,features, pixels, and/or other suitable visualizations or information onthe display screen. The I/O interfaces 114, 124 may also include I/Ocomponents (e.g., ports, capacitive or resistive touch sensitive inputpanels, keys, buttons, lights, LEDs, any number of keyboards, mice, USBdrives, optical drives, screens, touchscreens, etc.), which may bedirectly/indirectly accessible via or attached to the user computingdevice 102 and/or the imaging device 104. According to some embodiments,an administrator or user/operator may access the user computing device102 and/or imaging device 104 to construct jobs, review images or otherinformation, make changes, input responses and/or selections, and/orperform other functions.

As described above herein, in some embodiments, the user computingdevice 102 may perform the functionalities as discussed herein as partof a “cloud” network or may otherwise communicate with other hardware orsoftware components within the cloud to send, retrieve, or otherwiseanalyze data or information described herein.

FIG. 2 is a perspective view of the imaging device 104 of FIG. 1, inaccordance with embodiments described herein. The imaging device 104includes a housing 202, an imaging aperture 204, a user interface label206, a dome switch/button 208, one or more light emitting diodes (LEDs)210, and mounting point(s) 212. As previously mentioned, the imagingdevice 104 may obtain job files from a user computing device (e.g., usercomputing device 102) which the imaging device 104 thereafter interpretsand executes. The instructions included in the job file may includedevice configuration settings (also referenced herein as “imagingsettings”) operable to adjust the configuration of the imaging device104 prior to capturing images of a target object.

For example, the device configuration settings may include instructionsto adjust one or more settings related to the imaging aperture 204. Asan example, assume that at least a portion of the intended analysiscorresponding to a machine vision job requires the imaging device 104 tomaximize the brightness of any captured image. To accommodate thisrequirement, the job file may include device configuration settings toincrease the aperture size of the imaging aperture 204. The imagingdevice 104 may interpret these instructions (e.g., via one or moreprocessors 118) and accordingly increase the aperture size of theimaging aperture 204. Thus, the imaging device 104 may be configured toautomatically adjust its own configuration to optimally conform to aparticular machine vision job. Additionally, the imaging device 104 mayinclude or otherwise be adaptable to include, for example but withoutlimitation, one or more bandpass filters, one or more polarizers, one ormore DPM diffusers, one or more C-mount lenses, and/or one or moreC-mount liquid lenses over or otherwise influencing the receivedillumination through the imaging aperture 204.

The user interface label 206 may include the dome switch/button 208 andone or more LEDs 210, and may thereby enable a variety of interactiveand/or indicative features. Generally, the user interface label 206 mayenable a user to trigger and/or tune to the imaging device 104 (e.g.,via the dome switch/button 208) and to recognize when one or morefunctions, errors, and/or other actions have been performed or takenplace with respect to the imaging device 104 (e.g., via the one or moreLEDs 210). For example, the trigger function of a dome switch/button(e.g., dome/switch button 208) may enable a user to capture an imageusing the imaging device 104 and/or to display a trigger configurationscreen of a user application (e.g., smart imaging application 116). Thetrigger configuration screen may allow the user to configure one or moretriggers for the imaging device 104 that may be stored in memory (e.g.,one or more memories 110, 120) for use in later developed machine visionjobs, as discussed herein.

As another example, the tuning function of a dome switch/button (e.g.,dome/switch button 208) may enable a user to automatically and/ormanually adjust the configuration of the imaging device 104 inaccordance with a preferred/predetermined configuration and/or todisplay an imaging configuration screen of a user application (e.g.,smart imaging application 116). The imaging configuration screen mayallow the user to configure one or more configurations of the imagingdevice 104 (e.g., aperture size, exposure length, etc.) that may bestored in memory (e.g., one or more memories 110, 120) for use in laterdeveloped machine vision jobs, as discussed herein.

To further this example, and as discussed further herein, a user mayutilize the imaging configuration screen (or more generally, the smartimaging application 116) to establish two or more configurations ofimaging settings for the imaging device 104. The user may then savethese two or more configurations of imaging settings as part of amachine vision job that is then transmitted to the imaging device 104 ina job file containing one or more job scripts. The one or more jobscripts may then instruct the imaging device 104 processors (e.g., oneor more processors 118) to automatically and sequentially adjust theimaging settings of the imaging device in accordance with one or more ofthe two or more configurations of imaging settings after each successiveimage capture.

The mounting point(s) 212 may enable a user connecting and/or removablyaffixing the imaging device 104 to a mounting device (e.g., imagingtripod, camera mount, etc.), a structural surface (e.g., a warehousewall, a warehouse ceiling, structural support beam, etc.), otheraccessory items, and/or any other suitable connecting devices,structures, or surfaces. For example, the imaging device 104 may beoptimally placed on a mounting device in a distribution center,manufacturing plant, warehouse, and/or other facility to image andthereby monitor the quality/consistency of products, packages, and/orother items as they pass through the imaging device's 104 FOV. Moreover,the mounting point(s) 212 may enable a user to connect the imagingdevice 104 to a myriad of accessory items including, but withoutlimitation, one or more external illumination devices, one or moremounting devices/brackets, and the like.

In addition, the imaging device 104 may include several hardwarecomponents contained within the housing 202 that enable connectivity toa computer network (e.g., network 106). For example, the imaging device104 may include a networking interface (e.g., networking interface 122)that enables the imaging device 104 to connect to a network, such as aGigabit Ethernet connection and/or a Dual Gigabit Ethernet connection.Further, the imaging device 104 may include transceivers and/or othercommunication components as part of the networking interface tocommunicate with other devices (e.g., the user computing device 102)via, for example, Ethernet/IP, PROFINET, Modbus TCP, CC-Link, USB 3.0,RS-232, and/or any other suitable communication protocol or combinationsthereof.

FIG. 3 depicts an example application interface 300 utilized to optimizeone or more imaging settings for a machine vision job, in accordancewith embodiments described herein. Generally, the example applicationinterface 300 may represent an interface of a smart imaging application(e.g., smart imaging application 116) a user may access via a usercomputing device (e.g., user computing device 102). Specifically, theexample application interface 300 may present a user with a list of allavailable devices (e.g., imaging device 104) to which a user may connectand/or construct machine vision jobs when the user selects the viewdevices tab 302. From here, the user may view the device selection list304, which may display each connected device a user may access, and mayfurther include information such as, but without limitation, a devicename, a device model number, an IP address corresponding to the device,a device serial number, a device manufacture date, a device firmwarestatus, a device online status, and/or any other suitable indication.

The user may then select a device, indicated by the selected deviceindicator 306, from the device selection list 304, intending toconfigure and/or otherwise view some setting of the device. The selecteddevice indicator 306 may display the device name and the device onlinestatus, and may additionally or alternatively include any otherinformation related to the device. Upon selection of the deviceindicated in the selected device indicator 306, the smart imagingapplication 116 may additionally display a selected device configurationlisting 308 within the example application interface 300. The selecteddevice configuration listing 308 may include a variety of informationconcerning the selected device such as, but without limitation, aselected device general overview (e.g., firmware updates, libraryupdates, etc.), a selected device licenses overview (e.g., DHCPtimeout(s), IP address fallback, etc.), a selected device communicationsoverview (e.g., available connection types, current connection type,etc.), a selected device status overview (e.g., lens type, illuminationtype, etc.), and/or any other suitable information or combinationsthereof.

In addition, the selected device configuration listing 308 may includean indication of the machine vision jobs executed, stored, and/orotherwise associated with the selected device. For example, the selecteddevice configuration listing 308 may indicate that the selected deviceis configured to operate in accordance with a first machine vision jobthat was uploaded to the selected device at a first time (e.g.,“Uploaded at 10:00 AM on 10/10/18”). The selected device configurationlisting 308 may additionally indicate that the first machine vision jobincludes a first configuration of one or more image settingscorresponding to the selected device and a second configuration of theone or more image settings corresponding to the selected device. Each ofthe one or more image settings included in the first and secondconfiguration may additionally be displayed in the selected deviceconfiguration listing 308.

The example application interface 300 may additionally include an adddevice function 310 to allow a user to add additional devices, forexample, not found in the device selection list 304. If a user acquiresa new device, such as an imaging device (e.g., imaging device 104) theuser may click, swipe, and/or otherwise interact with the add devicefunction 310 to add the new device to the device selection list 304.Moreover, once the new device has been added, the user may interact withthe setup device functions 312A/B to configure and/or otherwise view thesettings corresponding to the new device. Accordingly, the user mayinteract with the setup device functions 312A/B at any time after adevice is added to the device selection list 304 to adjust, view, orotherwise manage the device settings.

Additionally or alternatively, when the user interacts with the setupdevice functions 312A/B the smart imaging application 116 maygenerate/render a new interface allowing the user to configure a machinevision job for the selected device (e.g., as indicated by the selecteddevice indicator 306). The user may additionally cause the smart imagingapplication 116 to generate/render the new interface by interacting withthe job creation tab 314. In this manner, the user may transition awayfrom the example application interface 300 to configure a machine visionjob corresponding to the selected device through an interaction witheither the setup device function 312A/B or the job creation tab 314.

FIG. 4A depicts an additional application interfaces utilized tooptimize one or more imaging settings for a machine vision job, inaccordance with embodiments described herein. For example, afterinteracting with the job creation tab (e.g., job creation tab 314)and/or the setup device function (e.g., setup device function 312A/B),the smart imaging application (e.g., smart imaging application 116) maytransition the user to a job construction application interface 400.Generally, the user may utilize the job construction applicationinterface 400 to organize and configure machine vision tools into aparticular sequence that defines a respective machine vision job. Theuser may additionally utilize the job construction application interface400 to upload the respective machine vision job to an imaging device(e.g., imaging device 104) for interpretation and execution.

To build a machine vision job, the user may select tools configured toperform machine vision functions. The user may select a tool byclicking, swiping, dragging, and/or otherwise interacting with theavailable tool(s) list 402. Each tool may be included in drop-down list(as illustrated) of the available tool(s) list 402, or may be plainlyvisible to the user on the available tool(s) list 402. In any event, theuser may select and move a desired tool over to the job flow buildersection 404 to begin constructing a machine vision job. In the job flowbuilder section 404, the user may organize each selected tool into anoptimal/preferential order based upon the requirements of the machinevision job. Further, the user may configure each tool to more accuratelysatisfy the requirements of the machine vision job. For example, theuser may configure a barcode scanning tool selected from the availabletool(s) list 402 to scan over a larger/smaller area of image(s) capturedby the selected device (e.g., imaging device 104).

The user may also select a representative image from the job filmstrip406 in order to complete configuration of the selected tools. The jobfilmstrip 406 may include real-time images from the selected device, orthey may be stored images (e.g., in the one or more memories 110, 120)that are representative of an ideal image capture for the machine visionjob. Additionally or alternatively, the smart imaging application 116may automatically populate the job filmstrip 406 based on the selectedtools in the job flow builder section 404. Once selected, therepresentative image may appear in a larger section above the jobfilmstrip 406 that enables the user to place tool ROIs 408 over therepresentative image. A tool ROI 408 indicates a region of therepresentative image that the tool represented by the tool ROI 408 mayanalyze using a machine vision technique. For example, if the tool ROI408 represents the ROI of a barcode scanning tool, then the barcodescanning tool will scan for a barcode within the region of therepresentative image indicated by the tool ROI 408.

If the user cannot decide on an appropriate tool for a machine visionjob, the user may click, swipe, and/or otherwise interact with the jobconstruction application interface 400 and the smart imaging application116 may generate/render the tool information region 410. The smartimaging application 116 may provide a user with commonly used toolsuggestions, tool type suggestions, descriptions of each tool includedin the tool information region 410, and/or any other suitableinformation of combinations thereof. For example, the smart imagingapplication 116 may provide a user with an option in the toolinformation region 410 to search for a particular tool by typing,speaking, and/or otherwise indicating a name, function, or otherrepresentative quality of the tool.

When the user has selected and/or ordered one or more tools, and thuscreated a machine vision job, the job deployment toggle 412 allows auser to upload the machine vision job to the selected device (e.g.,imaging device 104). The smart imaging application 116 may register theuser interaction with the job deployment toggle 412 and convert themachine vision job to a job file that is then transmitted (e.g., vianetwork 106) to the selected device. The machine vision job may also bestored in memory (e.g., one or more memories 110, 120). The user mayadditionally toggle the uploaded machine vision job into active/inactiveuse by interacting with the job deployment toggle 412. Thereafter, theuser may adjust configurations/settings associated with the machinevision job by accessing the machine vision job and interacting with theone or more tools in the available tool(s) list 402 and/or the jobbuilder flow section 404, the images in the job filmstrip 406, the toolROls 408, and/or by the options within the tool information region 410.

In various embodiments, the job construction application interface 400allows a user to construct multiple machine vision jobs to be executedin sequence for a selected device (e.g., imaging device 104). Forexample, the job construction application interface 400 may allow a userto construct a first machine vision job comprising a first set of toolsthat adjust the configuration of the selected device to a firstconfiguration. The first configuration may include one or more imagingsettings of the selected device such as, without limitation, an aperturesize, an exposure length, an ISO value, and/or any other suitable valueor combinations thereof. The job construction application interface 400may also allow the user to construct a second machine vision jobcomprising a second set of tools that adjust the configuration of theselected device to a second configuration. The second set of tools maybe the same or different from the first set of tools, and the secondconfiguration may be the same or different from the first configuration.In any event, the smart imaging application 116 may transmit bothmachine vision jobs to the selected device, and may store both machinevision jobs in memory (e.g., one or more memories 110, 120). Thereafter,the selected device may sequentially perform the first machine visionjob and the second machine vision job automatically, e.g., may captureat least one image in accordance with the first configuration,automatically adjust to the second configuration, and capture at leastone image in accordance with the second configuration.

However, the user may desire to configure the specific functionality ofeach tool included in the job builder flow section 404. Thus, inreference to FIG. 4B, the user may interact with a tool in the jobbuilder flow section 404 or other area of the job constructionapplication interface 400, and the smart imaging application 116 maygenerate/render the tool configuration application interface 420. Thetool configuration application interface 420 may enable a user tocustomize the specific functionality of each tool included in a machinevision job via the user-selectable options present in the toolconfiguration region 422. For example, the tool configuration region 422may include tool configuration options such as, without limitation, atool model region type, a tool name, a tool fixture, a tool image type,a tool acceptance threshold, a tool rotation threshold, a tool timeout,and/or any other suitable tool configuration option. To illustrate, auser may configure the tool rotation threshold corresponding to the toolROI 408 based upon the relatively minimal rotation of the cap of thetarget object 424 featured in the image. In this manner, the smartimaging application 116 allows a user to fully customize the selection,order, and individual configuration of each tool included in a machinevision job.

Further, in various embodiments, one or more tools included in the jobbuilder flow section 404 may be artificial intelligence (AI) based toolstrained with at least one AI algorithm. For example, training a barcodelocation tool may involve image analysis of hundreds, thousands, ormillions of training images featuring pixel data of objects withbarcodes to configure weights of the barcode location tool, and itsunderlying algorithm (e.g., machine learning or artificial intelligencealgorithm) used to predict and/or classify barcode locations in futureimages. In this example, one or more processors of a computing platform(e.g., user computing device 102) may receive the plurality of trainingimages of the objects with barcodes via a computer network (e.g.,network 106). The computing platform may also train the barcode locationtool with the pixel data of the plurality of training images.

In various embodiments, an AI tool (e.g., AI barcode location tool), maybe trained using a supervised or unsupervised machine learning programor algorithm. The machine learning program or algorithm may employ aneural network, which may be a convolutional neural network, a deeplearning neural network, or a combined learning module or program thatlearns in two or more features or feature datasets (e.g., pixel data) ina particular areas of interest. The machine learning programs oralgorithms may also include natural language processing, semanticanalysis, automatic reasoning, regression analysis, support vectormachine (SVM) analysis, decision tree analysis, random forest analysis,K-Nearest neighbor analysis, naïve Bayes analysis, clustering,reinforcement learning, and/or other machine learning algorithms and/ortechniques. In some embodiments, the artificial intelligence and/ormachine learning based algorithms may be included as a library orpackage executed on a computing platform (e.g., user computing device102). For example, libraries may include the TENSORFLOW based library,the PYTORCH library, and/or the SCIKIT-LEARN Python library.

Machine learning may involve identifying and recognizing patterns inexisting data (such as training a tool based on pixel data of imagesincluding one or more target objects with barcodes) in order tofacilitate making predictions or identification for subsequent data(such as using the tool on new pixel data of a new target object inorder to determine whether the new target object includes a barcodeand/or where the barcode is located on the new target object).

Machine learning model(s), such as the AI barcode location tooldescribed herein for some embodiments, may be created and trained basedupon example data (e.g., “training data” and related pixel data) inputsor data (which may be termed “features” and “labels”) in order to makevalid and reliable predictions for new inputs, such as testing level orproduction level data or inputs. In supervised machine learning, amachine learning program operating on a server, computing device, orotherwise processor(s), may be provided with example inputs (e.g.,“features”) and their associated, or observed, outputs (e.g., “labels”)in order for the machine learning program or algorithm to determine ordiscover rules, relationships, patterns, or otherwise machine learning“models” that map such inputs (e.g., “features”) to the outputs (e.g.,labels), for example, by determining and/or assigning weights or othermetrics to the model across its various feature categories. Such rules,relationships, or otherwise models may then be provided subsequentinputs in order for the tool, executing on the server, computing device,or otherwise processor(s), to predict, based on the discovered rules,relationships, or model, an expected output.

In unsupervised machine learning, the server, computing device, orotherwise processor(s), may be required to find its own structure inunlabeled example inputs, where, for example multiple trainingiterations are executed by the server, computing device, or otherwiseprocessor(s) to train multiple generations of tools until a satisfactorytool, e.g., a tool that provides sufficient prediction accuracy whengiven test level or production level data or inputs, is generated. Thedisclosures herein may use one or both of such supervised orunsupervised machine learning techniques.

Generally, pixel data comprises points or squares of data within animage, where each point or square represents a single pixel within animage. Each pixel may be a specific location within an image. Inaddition, each pixel may have a specific color (or lack thereof). Pixelcolor may be determined by a color format and related channel dataassociated with a given pixel. For example, a popular color formatincludes the red-green-blue (RGB) format having red, green, and bluechannels. That is, in the RGB format, data of a pixel is represented bythree numerical RGB components (Red, Green, Blue), that may be referredto as a channel data, to manipulate the color of pixel's area within theimage. In some implementations, the three RGB components may berepresented as three 8-bit numbers for each pixel. Three 8-bit bytes(one byte for each of RGB) is used to generate 24 bit color. Each 8-bitRGB component can have 256 possible values, ranging from 0 to 255 (i.e.,in the base 2 binary system, an 8 bit byte can contain one of 256numeric values ranging from 0 to 255). This channel data (R, G, and B)can be assigned a value from 0 255 and be used to set the pixel's color.For example, three values like (250, 165, 0), meaning (Red=250,Green=165, Blue=0), can denote one Orange pixel. As a further example,(Red=255, Green=255, Blue=0) means Red and Green, each fully saturated(255 is as bright as 8 bits can be), with no Blue (zero), with theresulting color being Yellow. As a still further example, the colorblack has an RGB value of (Red=0, Green=0, Blue=0) and white has an RGBvalue of (Red=255, Green=255, Blue=255). Gray has the property of havingequal or similar RGB values. So (Red=220, Green=220, Blue=220) is alight gray (near white), and (Red=40, Green=40, Blue=40) is a dark gray(near black).

In this way, the composite of three RGB values creates the final colorfor a given pixel. With a 24-bit RGB color image using 3 bytes there canbe 256 shades of red, and 256 shades of green, and 256 shades of blue.This provides 256×256×256, i.e., 16.7 million possible combinations orcolors for 24 bit RGB color images. In this way, the pixel's RGB datavalue shows how much of each of Red, and Green, and Blue the pixel iscomprised of. The three colors and intensity levels are combined at thatimage pixel, i.e., at that pixel location on a display screen, toilluminate a display screen at that location with that color. It is tobe understood, however, that other bit sizes, having fewer or more bits,e.g., 10-bits, may be used to result in fewer or more overall colors andranges.

As a whole, the various pixels, positioned together in a grid pattern,form a digital image (e.g., pixel data 202 ap, 202 bp, and/or 202 cp). Asingle digital image can comprise thousands or millions of pixels.Images can be captured, generated, stored, and/or transmitted in anumber of formats, such as JPEG, TIFF, PNG and GIF. These formats usepixels to store represent the image.

Image analysis may include training a machine learning based tool (e.g.,an AI barcode location tool) on pixel data of images including one ormore target objects with barcodes. Additionally, or alternatively, imageanalysis may include using a machine learning based tool, as previouslytrained, to determine, based on the pixel data (e.g., including theirRGB values) of one or more images including one or more target objects,whether each of the one or more target objects includes a barcode and/orwhere the barcode is located on each of the one or more target objects.The weights of the tool may be trained via analysis of various RGBvalues of barcode pixels of a given image. For example, dark or low RGBvalues (e.g., a pixel with values R=25, G=28, B=31) may indicate thetypically black colored region of a barcode. A lighter RGB value (e.g.,a pixel with R=210, G=234, and B=241) may indicate the typically whiteregion of a barcode (e.g., spaces between the black barcode bars orblack square of a QR code).

Together, when a series of pixels in an analyzed region transition fromdark or low RGB values to lighter RGB values (or vice versa) in aconsistent succession, that may indicate the presence of a barcoderepresented by the series of pixels. For example, an image may feature afront surface of a target object, wherein the front surface includes abarcode near the bottom of the image. The AI barcode location tool mayanalyze one or more regions of the image until the AI barcode locationtool analyzes a respective region including pixels representative of thetarget object's barcode. The AI barcode location tool may recognize thatthe pixels are indicative of the barcode because the pixels may have asuccession of very dark RGB value pixels contrasted with very light RGBvalue pixels. In this way, pixel data (e.g., detailing one or morefeatures of a target object, such as a respective target object'sbarcode) of thousands or millions of training images may be used totrain or use a machine learning tool (e.g., AI barcode location tool) todetermine a presence/location of a barcode and/or any other suitablemachine vision technique described herein.

FIG. 5 is a flowchart representative of a method 500 for optimizing oneor more imaging settings for a machine vision job, in accordance withembodiments described herein. Method 500 describes various methods foroptimizing one or more imaging settings for a machine vision job, andembodiments of the method 500 are discussed below in context with FIG.6. Generally speaking, the method 500 for optimizing one or more imagingsettings for a machine vision job includes detecting an initiationtrigger to capture a first image, capturing a first image of a targetobject in accordance with a first configuration of one or more imagingsettings, automatically adjusting the one or more imaging settings to asecond configuration, and capturing a second image of the target objectin accordance with the second configuration of the one or more imagingsettings. Capturing the first image, automatically adjusting the imagingsettings, and capturing the second image may each be discussed withadditional reference to FIG. 6.

It is to be understood that, when described in reference to FIGS. 5 and6, the imaging device 104 and/or the imaging assembly 126 may comprise asingle camera configured to perform the various actions andfunctionalities described herein. However, in various embodiments, theimaging device 104 may include multiple cameras.

In addition, for simplicity, each imaging settings configurationdiscussed in reference to FIGS. 5 and 6 is described in terms of one ormore sets of machine vision tools. For example, a first image may becaptured in accordance with a first configuration and a second image maybe captured in accordance with a second configuration based on one ormore machine vision tools used to analyze the first and second images,respectively. It is to be appreciated that each imaging settingsconfiguration (e.g., the first configuration, the second configuration,etc.) may also be determined based on a distance from the imaging device104 to the target object and/or any other suitable metric. For example,the first image may be captured in accordance with a first configurationand a second image may be captured in accordance with a secondconfiguration determined based upon a first distance from the imagingdevice 104 to the target object and a second distance from the imagingdevice 104 to the target object, respectively. In this example andothers utilizing different metrics and/or more or fewer imaging settingsconfigurations, each machine vision tool included in the machine visionjob may analyze each image capture.

The method 500 may include detecting an initiation trigger thatinitiates a machine vision job (block 502). Broadly, the initiationtrigger may describe a catalyst causing the imaging device 104 tocapture an image of a target object in accordance with a set of imagingsettings. For example, the initiation trigger may be any action,threshold satisfaction, timing sequence completion, and/or otherincidence causing the imaging device 104 to capture an image of a targetobject. In various embodiments, the initiation trigger may comprise thetarget object entering a field of view (FOV) of the imaging device 104.In such embodiments, the imaging device 104 may include a proximitysensor or other suitable device configured to recognize the presence ofa target object at a location, generate the initiation trigger inresponse to recognizing the presence of the target object, and transmitthe initiation trigger to the imaging device 104 to cause the imagingdevice 104 to capture an image of the target object. Block 502 may beperformed by, for example, the imaging device 104 and/or the usercomputing device 102.

Moreover, the machine vision job may generally include at least onemachine vision tool configured to perform at least one machine visiontechnique on a captured image. To illustrate, the machine vision toolsmay include, without limitation, (i) a barcode scanning tool, (ii) apattern matching tool, (iii) an edge detection tool, (iv) a semanticsegmentation tool, (v) an object detection tool, and/or (vi) an objecttracking tool. As an example, the machine vision job may comprise abarcode scanning tool configured to perform a barcode scanning techniqueon an image captured by the imaging device 104. In various embodiments,the machine vision job may include one or more machine vision toolsconfigured to perform one or more machine vision techniques on the firstimage and the second image, as discussed herein. Moreover, it should beunderstood that each machine vision tool referenced and/or otherwiseincluded herein may include multiple reference names/designations, andall such machine vision tools are contemplated for use within theembodiments of the present disclosure.

The method 500 may further include capturing a first image of a targetobject in accordance with a first configuration of one or more imagingsettings (block 504). The imaging device 104 may capture the first imageof the target object in response to detecting/receiving the initiationtrigger. Generally, the first configuration of the one or more imagingsettings may correspond to optimal imaging settings for the firstmachine vision tool or the first set of machine vision tools to beexecuted as part of the machine vision job. For example, assume that thefirst machine vision tool included in the machine vision job is abarcode scanning tool, and further assume that the barcode scanning toolmay optimally perform a barcode scanning technique on an image capturedwith high contrast. The first configuration of the one or more imagingsettings may include a high contrast setting and/or a combination ofimaging settings configured to produce a high contrast image. Block 504may be performed by, for example, the imaging device 104.

As another example, assume that the first set of machine vision toolsincluded in the machine vision job is a barcode scanning tool, an edgedetection tool, and a pattern matching tool. Further, assume that thebarcode scanning tool may optimally perform a barcode scanning techniqueon an image captured with high contrast, the edge detection tool mayoptimally perform an edge detection technique on an image captured withmedium contrast, and the pattern matching tool may optimally perform apattern matching technique on an image captured with high gain. Thefirst configuration of the one or more imaging settings may include amedium contrast setting, a high contrast setting, a high gain setting,and/or a combination of imaging settings configured to produce acombination of the optimal settings for each machine vision tool (e.g.,one or more “average” optimal imaging settings). To illustrate, each ofthe barcode scanning tool, the edge detection tool, and the patternmatching tool may have one or more different optimal image settings.However, when the imaging device 104 captures the first image with theone or more “average” optimal imaging settings, each tool may be able toquickly and efficiently perform its respective machine vision techniqueon the first image. In this manner, multiple machine vision tools mayperform their respective machine vision techniques on a single imagecaptured using imaging settings based upon the optimal imaging settingsof one, some, or all of the multiple machine vision tools.

In various embodiments, the one or more imaging settings may include oneor more of (i) an aperture size, (ii) an exposure length, (iii) an ISOvalue, (iv) a focus value, (v) a gain value, and/or (vi) an illuminationcontrol.

It is to be understood that the imaging device 104 or other suitableimaging system may automatically reconfigure the one or more imagingsettings to be in accordance with the first configuration as a real-timeresponse to detecting/receiving the initiation trigger and prior tocapturing the first image. For example, and in reference to FIG. 6, theimaging device 104 may detect/receive the initiation trigger to capturethe first image of a target object 602. The target object 602 mayinclude three target areas 602 a, 602 b, and 602 c, each including afeature of interest (e.g., a barcode, a pattern, an edge, etc.). Theimaging device 104 may also include a machine vision job in memoryconfigured to execute upon detection/receipt of the initiation trigger,and/or the imaging device 104 may download (e.g., via network 106) froma remote storage device (e.g., user computing device 102) a machinevision job configured to execute upon detection/receipt of theinitiation trigger. The machine vision job may include one or moremachine vision tools, and each tool may include a unique set of imagingsettings corresponding to the respective tool. For example, and aspreviously mentioned, a barcode scanning tool may require high contrastimages, and may accordingly include a high contrast imaging setting whenincluded in a machine vision job.

In any event, the imaging device 104 may detect/receive the initiationtrigger causing the imaging device 104 to capture the first image.Assume that the first image corresponds to the first target area 602 aof the target object 602, and that the first target area 602 a includesa respective pattern. Further, assume that the machine vision jobincludes a pattern matching tool configured to identify and analyze therespective pattern in the first target area 602 a, and that theinstructions included in the job file corresponding to the patternmatching tool include a unique set of imaging settings intended tooptimize image captures for pattern matching analysis (In this example,the “first configuration”). Moreover, assume that the job file includesinstructions indicating a first distance 604 a from the imaging device104 to the first target area 602 a. Prior to capturing the first image,the imaging device 104 may interpret and/or otherwise receive theinstructions included in the job file corresponding to the patternmatching tool and the first distance 604 a, and as a result, the imagingdevice 104 may adjust one or more imaging settings to match the firstconfiguration identified in the job file instructions. Thereafter, theimaging device 104 may capture the first image in accordance with thefirst configuration.

Additionally or alternatively, the imaging device 104 may include aranging device and/or other distance measuring equipment to determinethe first distance 604 a, the second distance 604 b, the third distance604 c, and/or any other suitable distance prior to capturing the firstimage. For example, assume that the job file in the previous exampledoes not include instructions indicating the first distance 604 a.Further, assume that the first configuration specifies that the imagingdevice 104 should capture the first image using a medium gain setting,but does not specify other imaging settings (e.g., an aperture size, afocus value, etc.) to achieve a suitable image of the first target area602 a using a medium gain setting at the first distance 604 a. In thisexample, the ranging device may determine the first distance 604 a andtransmit the first distance to the one or more processors 118 of theimaging device 104. The one or more processors 118 may analyze the firstdistance in accordance with known imaging relationships (e.g.,increasing aperture size results in a shallower depth of field) todetermine specific imaging settings to capture the first image (and/orany subsequent image) in accordance with the first configuration (e.g.,a medium gain setting). Thus, the imaging device 104 may adjust, forexample, the gain setting, the aperture size, the focus value, and/orany other suitable imaging setting to achieve a set of imaging settingsin accordance with the first configuration. It will be appreciated thatthe imaging device 104 may also automatically determine suitable imagingsettings to achieve a set of imaging settings in accordance with thefirst configuration, the second configuration, the third configuration,and/or any other configurations in the absence of a ranging deviceand/or other distance measuring equipment.

The method 500 may further include automatically adjusting the one ormore imaging settings to a second configuration that includes at leastone different imaging setting from the first configuration (Block 506).Generally, the second configuration may correspond to one or moremachine vision tools that were not included in the first configuration.For example, the first machine vision tool included in the machinevision job may include a barcode scanning tool, which may require highcontrast and medium/low brightness images for optimal barcode scanninganalysis. Accordingly, the first configuration may include a highcontrast setting and a medium/low brightness setting causing the imagingdevice 104 to capture the first image of the first target area 604 a ata high contrast and medium/low brightness. However, the second machinevision tool included in the machine vision job may include an edgedetection tool, which may require medium contrast and medium/highbrightness images for optimal edge detection analysis. Accordingly, thesecond configuration may include a medium contrast setting and amedium/high brightness setting causing the imaging device 104 to adjustthe contrast and the brightness settings prior to capturing the secondimage. Of course, the imaging settings included in the firstconfiguration and the second configuration may include any suitableimaging settings. Block 506 may be performed by, for example, theimaging device 104.

In various embodiments, the imaging device may be configured toautomatically adjust the imaging settings for the imaging assembly(e.g., imaging assembly 126) and any additional components included aspart of the imaging device. For example, the imaging device may obtain afirst configuration as part of the job file that includes a smallaperture size and a medium illumination setting. The imaging device mayautomatically adjust the aperture size of the imaging device to a smallsetting, and may additionally automatically adjust the illuminationsetting of an external and/or internal illumination device to a mediumsetting. Of course, in these embodiments, the imaging device may beconfigured to adjust the imaging settings associated with any numberand/or type of additional components that are internally/externallyincluded as part of the imaging device.

The method 500 may further include capturing a second image of thetarget object in accordance with the second configuration of the one ormore imaging settings (block 508). For example, assume a first set ofone or more machine vision tools included, as part of the job file, afirst configuration causing the imaging device 104 to capture the firstimage of the target object (e.g., target object 602) in accordance withthe first configuration. The imaging device (e.g., imaging device 104)may obtain the first configuration and adjust the imaging settings ofthe imaging device accordingly. Further assume that a second set of oneor more machine vision tools included, as part of the job file, a secondconfiguration with at least one imaging setting that is different fromthe first configuration. The imaging device may capture the first imageand thereafter automatically adjust the imaging settings of the imagingdevice in accordance with the second configuration prior to capturingthe second image. The imaging device may then capture the second imagein accordance with the imaging settings corresponding to the secondconfiguration. Block 508 may be performed by, for example, the imagingdevice 104.

To illustrate, and in reference to FIG. 6, assume that the imagingdevice 104 receives a job file including a first and second set ofmachine vision tools and corresponding first and second configurationsconfigured to capture an image of the first and second target areas 602a, 602 b, respectively. Further, assume that the first configurationincludes a small aperture size setting and a medium brightness setting,and the second configuration includes a medium aperture size setting anda high brightness setting. In this example, the imaging device mayobtain the initiation trigger and automatically adjust the imagingsettings of the imaging device to a small aperture size and a mediumbrightness to capture the first image of the first target area 602 a. Ofcourse, it is to be appreciated that the imaging device mayalternatively automatically adjust the imaging settings of the imagingdevice in accordance with the first configuration prior to obtaining theinitiation trigger. In any event, responsive to the first image capture,the imaging device may automatically adjust the imaging settings of theimaging device to a medium aperture size and a high brightness setting.Accordingly, the imaging device may capture the second image of thesecond target area 602 b using a medium aperture size and a highbrightness setting. In this manner, the imaging device 104 may capture afirst image of the first target area 602 a in accordance with a firstconfiguration of imaging settings, and the device 104 may capture asecond image of the second target area 602 b in accordance with a secondconfiguration of imaging settings in response to a single initiationtrigger.

The method 500 may further include designating the second image as acurrent image (optional block 510) and determining whether all imagesetting configurations have been applied (optional block 512). Namely,the job file including the first set of machine vision tools and thesecond set of machine vision tools may include any suitable number ofsets of machine vision tools and/or individual machine vision toolsrequiring a specific configuration of imaging settings. Accordingly, theimaging device may, in response to the initiation trigger, designateeach recently captured image as a current image and determine whether ornot all imaging setting configurations have been applied such that allcorresponding images have been captured. If the imaging devicedetermines that all imaging setting configurations have not been applied(NO branch of optional block 512), then the imaging device may proceedto perform the action(s) included in optional block 514. Alternatively,if the imaging device determines that all imaging setting configurationshave been applied (YES branch of optional block 512), then the imagingdevice may proceed to perform the action(s) included in optional block520. Optional blocks 510 and 512 may be performed by, for example, theimaging device 104.

For example, and in reference to FIG. 6, assume that a job filetransmitted to the imaging device (e.g., imaging device 104) includesthree distinct sets of machine vision tools, each set including arespective imaging setting configuration. In response to detecting,receiving, and/or otherwise perceiving the initiation trigger, theimaging device may automatically adjust the imaging settings inaccordance with the first respective configuration and capture the firstimage of the first target area 602 a and thereafter automatically adjustthe imaging settings in accordance with the second respectiveconfiguration and capture the second image of the second target area 602b. The imaging device may then designate the second image as the currentimage and determine that a third respective imaging settingconfiguration has yet to be applied. Accordingly, the imaging device maydetermine that all imaging setting configurations have not been applied(NO branch of optional block 512) and continue to optional block 514.

Moreover, in various embodiments, the machine vision job may include(e.g., as part of the job file) a predetermined number of configurationsof the one or more imaging settings. As previously mentioned, themachine vision job may include one or more machine vision tools, eachincluding a corresponding configuration of the one or more imagingsettings. Additionally or alternatively, the machine vision job mayinclude sets of machine vision tools, wherein each set may include acombined/aggregate configuration and/or a plurality of configurations ofthe one or more imaging settings, as discussed herein. Further in theseembodiments, each configuration of the one or more imaging settingsincluded in the machine vision job may include the same machine visiontools; however, the machine vision tool settings (e.g., theuser-selectable options present in the tool configuration region 422)may each be tailored for the specific configuration. As an example, if amachine vision job includes three configurations of the one or moreimaging settings to capture a first, second, and a third image of thefirst, second, and third target areas 602 a-c, respectively, then thesettings for each machine vision tool included in each of the first,second, and third configurations may be adjusted to maximize theirindividual processing potential (e.g., potential for a barcode scanningtool to scan a barcode, potential for a pattern matching tool to match apattern, etc.) for each configuration.

The method 500 may further include automatically adjusting the one ormore image settings to a subsequent configuration (optional block 514).Generally speaking, each subsequent configuration may include at leastone imaging setting that is different from each prior configuration ofthe one or more imaging settings. For example, assume that a respectiveconfiguration of the one or more imaging settings includes a highcontrast setting, a small aperture size setting, and a short exposuretime setting. In this example, every other respective configuration mayinclude at most two of the high contrast setting, the small aperturesize setting, and the short exposure time setting included in therespective configuration. In reference to the prior example, the imagingdevice may automatically adjust the imaging settings of the imagingdevice from the second respective imaging setting configuration to thethird respective imaging setting configuration. Optional block 514 maybe performed by, for example, the imaging device 104.

The method 500 may further include capturing a subsequent image of thetarget object in accordance with the subsequent configuration of the oneor more imaging settings (optional block 516). Continuing the priorexample, the imaging device may capture a third image of the thirdtarget area 602 c in accordance with the third respective imagingsetting configuration. The method 500 may further include designatingthe subsequent image as the current image (optional block 518), andreturning to optional block 512. In the prior example, the imagingdevice may designate the third image as the current image, and againdetermine whether or not all imaging setting configurations have beenapplied. As an example, if the machine vision job includes (e.g., viathe job file) a fourth respective imaging setting configuration, thenthe imaging device may automatically adjust the one or more imagingsettings in accordance with the fourth respective imaging settingconfiguration and capture a fourth image. In certain embodiments, theimaging device may iteratively perform each of the actions associatedwith optional blocks 512 through optional block 518 until the imagingdevice determines that all imaging setting configurations have beenapplied (YES branch of optional block 512). Optional blocks 516 and 518may be performed by, for example, the imaging device 104.

When the imaging device determines that all imaging settingconfigurations have been applied (YES branch of optional block 512), theimaging device may perform one or more machine vision techniques on thecaptured images (optional block 520). As previously discussed, themachine vision job may include one or more machine vision tools, eachconfigured to perform one or more machine vision techniques on thecaptured images. For example, the machine vision job may include abarcode scanning tool, a pattern matching tool, an edge detection tool,and/or any other suitable machine vision tool or combinations thereof.Thus, the imaging device may (as part of the machine vision job) applythe barcode scanning tool to the first image to scan the first image fora barcode. Similarly, the imaging device may apply the pattern matchingtool and the edge detection tool to the first image to identify one ormore patterns and one or more edges, respectively. The imaging devicemay additionally apply these and/or other machine vision tools to eachof the captured images (e.g., the second, third, fourth, and/or allsubsequent images). Optional block 520 may be performed by, for example,the imaging device 104.

In various embodiments when one or more of the machine vision tools isan AI machine vision tool, each of the captured images may be collectedor aggregated at the imaging device and may be analyzed by, and/or usedto train, the AI machine vision tool (e.g., an AI tool such as a machinelearning imaging tool as described herein). Each of these images maycomprise pixel data (e.g., RGB data) representing feature data of thetarget object and corresponding to each of the imaging settingconfigurations included in the machine vision job.

The method 500 may further include generating a result signal for themachine vision job (optional block 522). Generally, the machine visionjob may return a result signal to indicate to a user/operator whether ornot the captured images satisfy the thresholds and/or otherwise resultin a satisfactory analysis from each of the machine vision toolsincluded in the machine vision job. If a single machine vision tool doesnot return and/or otherwise perform a satisfactory analysis whenanalyzing a respective captured image, the machine vision job may failfor the respective captured image. By contrast, if all machine visiontools included in a machine vision job for a particular configuration ofthe one or more imaging settings return and/or otherwise perform asatisfactory analysis on a respective captured image, the machine visionjob may pass for the respective captured image. As a result, the imagingdevice may return a result signal to the user/operator to represent apass indication or a fail indication for the machine vision job.Optional block 522 may be performed by, for example, the imaging device104.

For example, and in reference to FIG. 6, assume that the imaging device104 captures a first image of the first target area 602 a of the targetobject 602. Assume that the machine vision tools analyzing the firstimage are configured to search for a first barcode, a first pattern, afirst edge, and a first set of alphanumeric characters. Further, assumethat each machine vision tool performs a satisfactory analysis, suchthat the machine vision tools analyzing the first image successfullyidentify each of the first barcode, the first pattern, the first edge,and the first set of alphanumeric characters. As a result, the imagingdevice may output a pass indication for display to a user/operator,indicating that each machine vision tool successfully performed asatisfactory analysis.

As another example, assume that the imaging device 104 captures a secondimage of the second target area 602 b of the target object 602. Assumethat the machine vision tools analyzing the second image are configuredto search for a second barcode, a second pattern, a second edge, and asecond set of alphanumeric characters. Further, assume that some of themachine vision tools perform a satisfactory analysis, such that themachine vision tools analyzing the second image successfully identifyeach of the second barcode, the second pattern, and the second edge.However, assume that at least one machine vision tool does not perform asatisfactory analysis, such that the at least one machine vision tooldoes not successfully identify the second set of alphanumericcharacters. As a result, the imaging device may output a fail indicationfor display to a user/operator, indicating that the at least one machinevision tool failed to successfully perform a satisfactory analysis withrespect to the second image.

In the above examples, the pass/fail indications may include anysuitable information, and be presented in any suitable format.Generally, the pass/fail indications may include any alphanumericcharacters, symbols, icons, colors, highlighting, pictures and/or othergraphical representations, and/or any other suitable indications orcombinations thereof. For example, the fail indication of the priorexample may include text indicating that the at least one machine visiontool failed to identify the second set of alphanumeric characters. Asanother example, the pass indication of the prior example may include agreen light or other symbol (e.g., a graphical hand in a “thumbs up”configuration) indicative of the machine vision tools positivelyidentifying each of the first barcode, the first pattern, the firstedge, and the first set of alphanumeric characters. Additionally, oralternatively, the pass/fail indications for each respective capturedimage and/or portions thereof may be used and/or overlaid on a graphicalrepresentation of the respective captured image.

Additionally, it is to be understood that each of the actions describedin the method 500 may be performed in any order, number of times, or anyother combination(s) therein suitable to optimize one or more imagingsettings for a machine vision job. For example, some or all of theblocks of the method 500 may be fully performed once, multiple times, ornot at all.

Additional Considerations

The above description refers to a block diagram of the accompanyingdrawings. Alternative implementations of the example represented by theblock diagram includes one or more additional or alternative elements,processes and/or devices. Additionally or alternatively, one or more ofthe example blocks of the diagram may be combined, divided, re-arrangedor omitted. Components represented by the blocks of the diagram areimplemented by hardware, software, firmware, and/or any combination ofhardware, software and/or firmware. In some examples, at least one ofthe components represented by the blocks is implemented by a logiccircuit. As used herein, the term “logic circuit” is expressly definedas a physical device including at least one hardware componentconfigured (e.g., via operation in accordance with a predeterminedconfiguration and/or via execution of stored machine-readableinstructions) to control one or more machines and/or perform operationsof one or more machines. Examples of a logic circuit include one or moreprocessors, one or more coprocessors, one or more microprocessors, oneor more controllers, one or more digital signal processors (DSPs), oneor more application specific integrated circuits (ASICs), one or morefield programmable gate arrays (FPGAs), one or more microcontrollerunits (MCUs), one or more hardware accelerators, one or morespecial-purpose computer chips, and one or more system-on-a-chip (SoC)devices. Some example logic circuits, such as ASICs or FPGAs, arespecifically configured hardware for performing operations (e.g., one ormore of the operations described herein and represented by theflowcharts of this disclosure, if such are present). Some example logiccircuits are hardware that executes machine-readable instructions toperform operations (e.g., one or more of the operations described hereinand represented by the flowcharts of this disclosure, if such arepresent). Some example logic circuits include a combination ofspecifically configured hardware and hardware that executesmachine-readable instructions. The above description refers to variousoperations described herein and flowcharts that may be appended heretoto illustrate the flow of those operations. Any such flowcharts arerepresentative of example methods disclosed herein. In some examples,the methods represented by the flowcharts implement the apparatusrepresented by the block diagrams. Alternative implementations ofexample methods disclosed herein may include additional or alternativeoperations. Further, operations of alternative implementations of themethods disclosed herein may combined, divided, re-arranged or omitted.In some examples, the operations described herein are implemented bymachine-readable instructions (e.g., software and/or firmware) stored ona medium (e.g., a tangible machine-readable medium) for execution by oneor more logic circuits (e.g., processor(s)). In some examples, theoperations described herein are implemented by one or moreconfigurations of one or more specifically designed logic circuits(e.g., ASIC(s)). In some examples the operations described herein areimplemented by a combination of specifically designed logic circuit(s)and machine-readable instructions stored on a medium (e.g., a tangiblemachine-readable medium) for execution by logic circuit(s).

As used herein, each of the terms “tangible machine-readable medium,”“non-transitory machine-readable medium” and “machine-readable storagedevice” is expressly defined as a storage medium (e.g., a platter of ahard disk drive, a digital versatile disc, a compact disc, flash memory,read-only memory, random-access memory, etc.) on which machine-readableinstructions (e.g., program code in the form of, for example, softwareand/or firmware) are stored for any suitable duration of time (e.g.,permanently, for an extended period of time (e.g., while a programassociated with the machine-readable instructions is executing), and/ora short period of time (e.g., while the machine-readable instructionsare cached and/or during a buffering process)). Further, as used herein,each of the terms “tangible machine-readable medium,” “non-transitorymachine-readable medium” and “machine-readable storage device” isexpressly defined to exclude propagating signals. That is, as used inany claim of this patent, none of the terms “tangible machine-readablemedium,” “non-transitory machine-readable medium,” and “machine-readablestorage device” can be read to be implemented by a propagating signal.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings. Additionally, thedescribed embodiments/examples/implementations should not be interpretedas mutually exclusive, and should instead be understood as potentiallycombinable if such combinations are permissive in any way. In otherwords, any feature disclosed in any of the aforementionedembodiments/examples/implementations may be included in any of the otheraforementioned embodiments/examples/implementations.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The claimed invention isdefined solely by the appended claims including any amendments madeduring the pendency of this application and all equivalents of thoseclaims as issued.

Moreover, in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has”,“having,” “includes”, “including,” “contains”, “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . .a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially”, “essentially”,“approximately”, “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 5%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may lie in less thanall features of a single disclosed embodiment. Thus, the followingclaims are hereby incorporated into the Detailed Description, with eachclaim standing on its own as a separately claimed subject matter.

1. A method for optimizing one or more imaging settings for a machinevision job, the method comprising: detecting, by one or more processors,an initiation trigger that initiates the machine vision job; responsiveto detecting the initiation trigger, capturing, by an imaging device, afirst image of a target object in accordance with a first configurationof the one or more imaging settings; responsive to capturing the firstimage of the target object, automatically adjusting, by the one or moreprocessors, the one or more imaging settings to a second configurationthat includes at least one different imaging setting from the firstconfiguration; and capturing, by the imaging device, a second image ofthe target object in accordance with the second configuration of the oneor more imaging settings.
 2. The method of claim 1, wherein the one ormore imaging settings include one or more of (i) an aperture size, (ii)an exposure length, (iii) an ISO value, (iv) a focus value, (v) a gainvalue, or (vi) an illumination control.
 3. The method of claim 1,wherein the initiation trigger comprises the target object entering afield of view (FOV) of the imaging device.
 4. The method of claim 1,wherein the imaging device includes a single camera.
 5. The method ofclaim 1, wherein the machine vision job includes one or more machinevision tools configured to perform one or more machine vision techniqueson the first image and the second image.
 6. The method of claim 5,further comprising: performing, by the one or more processors, the oneor more machine vision techniques on the first image and the secondimage in accordance with the one or more machine vision tools includedin the machine vision job; and generating, by the one or moreprocessors, a result signal representing a pass indication or a failindication for the machine vision job.
 7. The method of claim 5, whereinthe one or more machine vision tools include at least one of (i) abarcode scanning tool, (ii) a pattern matching tool, (iii) an edgedetection tool, (iv) a semantic segmentation tool, (v) an objectdetection tool, or (vi) an object tracking tool.
 8. The method of claim1, wherein the machine vision job includes a predetermined number ofconfigurations of the one or more imaging settings.
 9. The method ofclaim 8, further comprising: (a) designating the second image as acurrent image; (b) responsive to capturing the current image of thetarget object, automatically adjusting the one or more imaging settingsto a subsequent configuration that includes at least one differentimaging setting from each prior configuration of the one or more imagingsettings; (c) capturing, by the imaging device, a subsequent image ofthe target object in accordance with the subsequent configuration of theone or more imaging settings; (d) designating the subsequent image asthe current image; and (e) iteratively performing steps (b)-(e) untileach configuration of the predetermined number of configurations of theone or more imaging settings has been utilized to capture at least oneimage of the target object.
 10. A computer system for optimizing one ormore imaging settings for a machine vision job, the system comprising:an imaging device configured to: capture a first image of a targetobject in accordance with a first configuration of the one or moreimaging settings, and capture a second image of the target object inaccordance with a second configuration of the one or more imagingsettings; one or more processors; and a non-transitory computer-readablememory coupled to the imaging device and the one or more processors, thememory storing instructions thereon that, when executed by the one ormore processors, cause the one or more processors to: detect aninitiation trigger that initiates the machine vision job, and responsiveto capturing the first image of the target object, automaticallyadjusting the one or more imaging settings to the second configurationthat includes at least one different imaging setting from the firstconfiguration.
 11. The computer system of claim 10, wherein the one ormore imaging settings include one or more of (i) an aperture size, (ii)an exposure length, (iii) an ISO value, (iv) a focus value, (v) a gainvalue, or (vi) an illumination control.
 12. The computer system of claim10, wherein the initiation trigger comprises the target object enteringa field of view (FOV) of the imaging device.
 13. The computer system ofclaim 10, wherein the machine vision job includes one or more machinevision tools configured to perform one or more machine vision techniqueson the first image and the second image.
 14. The computer system ofclaim 13, wherein the instructions, when executed by the one or moreprocessors, further cause the one or more processors to: perform the oneor more machine vision techniques on the first image and the secondimage in accordance with the one or more machine vision tools includedin the machine vision job; and generate a result signal representing apass indication or a fail indication for the machine vision job.
 15. Thecomputer system of claim 10, wherein the machine vision job includes apredetermined number of configurations of the one or more imagingsettings.
 16. The computer system of claim 15, wherein the instructions,when executed by the one or more processors, further cause the one ormore processors to: (a) designate the second image as a current image;(b) responsive to capturing the current image of the target object,automatically adjust the one or more imaging settings to a subsequentconfiguration that includes at least one different imaging setting fromeach prior configuration of the one or more imaging settings; (c)capture, by the imaging device, a subsequent image of the target objectin accordance with the subsequent configuration of the one or moreimaging settings; (d) designate the subsequent image as the currentimage; and (e) iteratively perform steps (b)-(e) until eachconfiguration of the predetermined number of configurations of the oneor more imaging settings has been utilized to capture at least one imageof the target object.
 17. A tangible machine-readable medium comprisinginstructions for optimizing one or more imaging settings for a machinevision job that, when executed, cause a machine to at least: detect aninitiation trigger that initiates the machine vision job; responsive todetecting the initiation trigger, capture, by an imaging device, a firstimage of a target object in accordance with a first configuration of theone or more imaging settings; responsive to capturing the first image ofthe target object, automatically adjust the one or more imaging settingsto a second configuration that includes at least one different imagingsetting from the first configuration; and capture, by the imagingdevice, a second image of the target object in accordance with thesecond configuration of the one or more imaging settings.
 18. Thetangible machine-readable medium of claim 17, wherein the machine visionjob includes one or more machine vision tools configured to perform oneor more machine vision techniques on the first image and the secondimage.
 19. The tangible machine-readable medium of claim 18, wherein theinstructions, when executed, further cause the machine to at least:perform the one or more machine vision techniques on the first image andthe second image in accordance with the one or more machine vision toolsincluded in the machine vision job; and generate a result signalrepresenting a pass indication or a fail indication for the machinevision job.
 20. The tangible machine-readable medium of claim 17,wherein the machine vision job includes a predetermined number ofconfigurations of the one or more imaging settings, and wherein theinstructions, when executed, further cause the machine to at least: (a)designate the second image as a current image; (b) responsive tocapturing the current image of the target object, automatically adjustthe one or more imaging settings to a subsequent configuration thatincludes at least one different imaging setting from each priorconfiguration of the one or more imaging settings; (c) capture, by theimaging device, a subsequent image of the target object in accordancewith the subsequent configuration of the one or more imaging settings;(d) designate the subsequent image as the current image; and (e)iteratively perform steps (b)-(e) until each configuration of thepredetermined number of configurations of the one or more imagingsettings has been utilized to capture at least one image of the targetobject.